Data transfer and recovery

ABSTRACT

A backup image generator can create a primary image and periodic delta images of all or part of a primary server. The images can be sent to a network attached storage device and one or more remote storage servers. In the event of a failure of the primary server, an updated primary image may be used to provide an up-to-date version of the primary system at a backup or other system. As a result, the primary data storage may be timely backed-up, recovered and restored with the possibility of providing server and business continuity in the event of a failure.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No.13/461,082, filed May 1, 2012, which is a continuation of U.S.application Ser. No. 13/026,441, filed Feb. 14, 2011, now U.S. Pat. No.8,176,358, which is a continuation of U.S. application Ser. No.12/364,461, filed Feb. 2, 2009, now U.S. Pat. No. 8,001,414, which is acontinuation of U.S. application Ser. No. 11/769,544, filed Jun. 27,2007, now U.S. Pat. No. 7,487,383, which claims the benefit of U.S.Provisional Patent Application 60/817,211, filed on Jun. 29, 2006, eachof which is hereby incorporated by reference in its entirety.

BACKGROUND

Business interruption due to the malfunction or loss of a server at aprimary site can be a major problem for large as well as smallbusinesses. Known systems address this issue by using various systemsranging from simple periodic tape drive or disk backups tosophisticated, redundant, mirror systems running the operating systemsand applications present on the primary systems. Data changes to theprimary system can be frequently transmitted to the one or moresecondary sites to keep them updated. In the event of a malfunction orloss of a primary site, users are redirected to a fully functional andupdated secondary site. It can be expensive to maintain such functioningand synchronized backup sites. Software licenses for operating systemsand applications running on the primary site have to be purchased andmaintained for the backup site. The backup site has to be operated andmaintained by a support staff. Malfunction and loss of computer systemscan be especially problematic for smaller businesses, which may not havethe budget to maintain fully operational, synchronized backup systems.This can be due to prohibitively expensive redundant hardware, operatingsystem and application licenses and the cost of staffing backupoperations. Small businesses have been forced to rely on less effectiveand efficient backup methods, such as tape backup systems or basicremote data storage resources. Such backups can be insufficient andunreliable and can lead to the loss of data and the interruption ofbusiness services. Data updates can be infrequent or unreliable anddifferences between primary and backup hardware and software (e.g.,operating system versions, applications, device drivers, etc.) can meanthat the backup may not work at the worst possible time, i.e., when itis needed.

Accordingly, what is needed is a cost-effective data backup and recoverysystem that can provide near-real time data backup and recovery forminimization of business interruption resulting from data system failurewithout the high costs of a live, redundant, mirror backup system.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate the present invention and, togetherwith the description, further serve to explain the principles of theinvention and to enable one skilled in the pertinent art to make and usethe invention.

FIG. 1 illustrates a data recovery system according to an embodiment ofthe present invention.

FIG. 2 illustrates a data recovery system according to an alternativeembodiment of the present invention.

FIG. 3 is a flowchart which illustrates a method of data recoveryaccording to an embodiment of the present invention.

FIG. 4 illustrates a remote data storage system according to anembodiment of the present invention.

FIG. 5 illustrates a remote data system according to an embodiment ofthe present invention.

FIG. 6 shows an example process for operating a backup system accordingto an embodiment of the invention.

FIG. 7 shows an example data transfer in a backup system according to anembodiment of the invention.

FIG. 8 shows an example data transfer in a backup system according to anembodiment of the invention.

FIG. 9 shows an example data transfer in a system according to anembodiment of the invention.

FIG. 10 shows an example arrangement for transitioning a primary systemto a remote backup service according to an embodiment of the invention.

FIG. 11 shows an example process for transitioning a primary system to aremote backup service according to an embodiment of the invention.

DETAILED DESCRIPTION

Embodiments of the present invention can provide a system that can storeand regularly update a backup disk image of a primary computer system,including the operating system, applications and data. The disk imagecan be stored on any suitable device adapted to store digitalinformation, according to the needs of a client. For example, to recoverfrom a failure of a partition, the image can be stored on anotherpartition of the same drive used by the primary system. Alternatively,the image can be stored on an external drive coupled (e.g., via USB) tothe primary system. To provide continuity of operations across the lossof the primary site (e.g., due to fire, acts of war, etc.), the imagecan be stored on a remote system, e.g., thousands of miles away from theprimary system.

Backup software on the primary system can cause the primary system totrack changes to the primary disk image and send updates (which can besent periodically, a periodically or in response to a triggeringcondition or event) to the backup system. Software at the backup systemcan update the backup primary image based upon the contents of theupdates. In the event of a failure of the primary system, the up-to-datebackup image can be loaded onto another system, which when running canessentially duplicate a recent state of the primary system beforefailure. In one embodiment, the backup primary image and delta imagescan be used to activate a remote virtual server to which users can beredirected after failure of the primary site. In another embodiment, theprimary system can be restored after power is restored or the primarysystem is repaired. This can be done by loading the backup image ontothe repaired primary system and activating it.

At least one of the primary and backup data storage system controlmodules can coordinate the copying of primary data images to thesecondary data storage system, where the secondary data storage systemis preferably a backup appliance such as a Network Attached Storagedevice (“NAS”). As used herein, “storage” can include all or part of ahard disk, RAM, ROM, flash memory, an external drive and any otherdevice adapted to store electronic information. “Primary serverstorage,” “network attached storage device,” etc. can include any all orpart of any such device that is usable by the primary server, networkstorage device, etc., respectively. Information may be transferredbetween the primary and backup data storage system controllerssynchronously, when a primary host computer requests writing of data toa primary data storage device, or asynchronously with the primary hostcomputer requesting the writing of data to the primary data storagesystem, in which case the remote data copying or mirroring isindependent of and largely transparent to the primary computer system.Data may also be similarly transferred between the primary or NAS and aremote storage server, thus providing an additional layer of failureprotection.

The data in the backup image can include a disk or partition image fromthe primary server system. The initial image may be a completecompressed block level copy of the primary server's hard drive patternsand can include a boot level backup feature. Once the initial image istransferred, incremental or differential changes can subsequently becomposed and sent to the backup device or storage unit. These updatesmay utilize bandwidth limiting and throttling such that primary serverfunctionality is largely unaffected by the backup work. For example, theupdates can be sent as a second or lower priority to functions performedby the primary system. For example, an update transmission can be heldwhile a user at the primary system views a streamed video that requiressubstantial bandwidth to properly display. The update transmission ratecan be slowed while the video is being streamed to prevent interruptionsin the viewed video, and then increased when the video is finished andthe bandwidth becomes available. The timing of the updates can becontrolled by a user or administrator of the primary system.

FIG. 1 illustrates a recovery system according to an embodiment of thepresent invention. The recovery system includes a primary server 101coupled to a NAS 102 and a remote server 103. NAS 102 may be coupled toprimary server 101 in any suitable way, e.g., direct connection via USBor connected through a network, such as a LAN, WAN, the Internet, etc.Remote server 103 may be connected to NAS 102 and primary server 101 inany suitable was, e.g., through a network such as a LAN, WAN, theInternet, etc. Primary server 101 can include server imaging module 104and server imaging module 104. Server imaging module 104 can send diskimages to NAS 102 and Remote Storage Server 103. Primary server storagecan be any device adapted to store digital information, including RAM,ROM, a hard disk, flash memory, etc. Primary server storage 106 caninclude a hard disk that stores an operating system for primary server101, as well as application software and data. Primary server storagecan be distributed across several devices. For example, the operatingsystem can be stored on a hard disk, while an application can be storedon a CD ROM and certain data can be stored on flash memory. Serverimaging module 104 can be stored in primary server storage 106, whichcan include an adjunct memory device, e.g., a smart card, flash memory,an external hard drive, etc., and can create disk images or partitionimages and continuous or near continuous incremental or differentialimages of changes occurring on the primary server storage 106. Theinitial disk or partition image may be referred to as a primary diskimage. The continuous or near continuous incremental or differentialimages may be referred to as delta images. The primary server 101 can bea customer server or workstation.

Primary server imaging module 104 can compose and send the initial diskimage to NAS storage 107 and remote storage 112 or the image can be sentto NAS storage 107 and then passed from NAS to remote storage 112. NASdata storage 107 can be any suitable device adapted to store digitalinformation. Remote data storage 112 can be any suitable device adaptedto store digital information. Deltas for the image can be sent from theprimary server 101 or the NAS 102 to the remote server.

Server imaging module 104 can also detect differences in primary serverstorage 106 since the initial disk image was composed and sent to NASstorage 107 and remote storage 112. Server imaging module 104 canpackage such differences into an update message, which it can send toNAS storage 107 and remote storage 112. Deltas may also be sent to NASstorage 107 and NAS 102 can send the deltas to remote storage 112.Backup restore modules 108 and Ill can update the image of primaryserver memory 106 that is stored in NAS storage 107 or remote storage112 by applying an update based upon the update message. Server imagingmodule 104 can compose and send additional update messages, where eachupdate message can be based upon the differences in primary serverstorage 106 since the last update was composed and sent. Backup restoremodule 108 or Ill can apply one or more updates sequentially to createan updated backup image in NAS storage 107 or remote storage 112 ofprimary server storage 106.

As shown in FIG. 2, the primary and delta images may be sent to a NAS102 and remote backup server 103 across network 202, e.g., across theInternet or any other suitable network or combination of networks.Transmission may be accomplished through the use of secure transportsoftware such as a synchronization/augmentation server or programs andprotocols such as HTTPS, Secure FTP, PIPS 140-2 validated or any othersecure transmission method. The image capture, data back-up process, andincremental updates may run within the operating system level of thephysical or virtual machine designated as the primary server with theincremental updates able to be combined into daily updates to minimizedata storage requirements and in effect creating an “incrementalforever” image of the primary server system. For example, incrementalupdates of a primary image that are composed and sent every fifteenminutes can be processed and combined into a single update at the end ofevery 24 hours. The fifteen minute incremental updates can also bestored (e.g., archived) as individual files. The daily update canreflect the net changes to the image that would be equivalent toapplying each of the fifteen minute updates in order. At the end ofevery week, the seven daily updates can be processed and combined into asingle week update that similarly reflects the net changes to the imagethat would be equivalent to applying each of the seven daily updates inorder. Similar operations can be undertaken to produce a monthly,quarterly and annual update file that reflects and would be equivalentto the net changes to the image based upon the underlying, more frequentupdates. Quarter hour, daily, weekly, quarterly, annual, etc. updatescan be archived so that an image can be modified to reflect its state atany of the times available through any of the updates. For example, ifan image taken on Jan. 1, 2006 is to be restored to its state on Sep.24, 2006 at 0045 hours, three quarterly updates can be applied insequence (updates dated March 1, June 1 and Sep. 1, 2006), then threeweekly updates may be applied in sequence (September 7, September 14)and then three fifteen minute updates may be applied (0015, 0030 and0045). An embodiment of the present invention thus provides a way tocreate an image based upon a primary image and updates (deltas) at anytime for which updates are available. The remote server 103 can have aphysical one-to-one ratio with the primary server 101, or canaccommodate a plurality of autonomous virtual backup servers, eachserving as a fail over for its respective primary data storage server.The ability to have a plurality of virtual servers in one data recoverystorage device can dramatically reduce costs for small businesscustomers.

Upon failure of the primary server 101, a user 203 can send a failurenotification to backup server 103 or NAS 102. Alternatively, the primaryserver 101 or a third party (e.g., that performs a service monitoringfunction) can send the failure notification. Upon receiving thenotification, the backup restore modules 108 or Ill can applyoutstanding delta images to the primary image stored in NAS data storage107 or remote data storage 112, respectively, thereby creating areasonably up-to-date image of the primary server 106. In an embodiment,physical/virtual conversion module 105 or 110 can perform aphysical-to-virtual (“P2V”) conversion to create a virtual server, usingthe image in NAS storage 107 or remote storage 112. Likewise,physical/virtual conversion module 105 or 110 can perform avirtual-to-physical (“V2P”) conversion to create a physical server froma virtual server. For example, a primary server may be lost due to adisaster or major malfunction, in which case a virtual image is updated,activated and maintained, e.g., updated and itself backed up inaccordance with an embodiment of the present invention by storing itsimage and generating deltas. The virtual image may then be laterrestored to a different and/or dissimilar (to the failed primary server)hardware and software device by the physical/virtual conversion module105 or 110 (e.g., a so-called “bare-metal” restore.) In accordance withan embodiment of the present invention, a primary server restorationrequest can be received to restore a server to a previous state.Physical/virtual conversion module 105 or 110 can perform a virtual tophysical conversion of the virtual server on a backup device to create arestoration image. For example, the NAS 102 and/or the remote server 103can create a restoration image for the primary server. Physical/virtualconversion module 105 or 110 can then perform then restoration of theprimary server using the restoration image. Any suitable device(including primary server 101) can be used as the target of a restoreoperation.

User interface 205 or 206 can be activated and user 203 can beredirected from primary server 101 to NAS 102 or remote server 103. Thevirtual server can perform the functions of failed primary server 101until proper repairs or replacements can be made at the primary site, atwhich time the information may be restored back to the primary server101. The functions performed by the virtual server may include, forexample, generating backup images and/or delta images of the virtualserver during operation. The backup of the virtual server can later beused to create a failover for the virtual server, or to restore theprimary server to a new, updated state based upon operations performedat the virtual server while operating in the primary server's stead. Theoperation of the virtual server or other backup system in generatingsuch backup images is described in further detail below. In anotherembodiment, the backup image may be sent to primary server 101 andrestored to primary server storage 106 when primary server 101 recovers,is repaired or replaced, and user can be switched back to primary server101. The backup image also may be updated based upon operationsperformed at the remote server during the time the primary serverremains unavailable. In another embodiment, the image may be loaded ontoa new server or a NAS, which can then be sent to the location of thefailed primary server 101 for replacement.

In accordance with an embodiment of the present invention, only oneversion of an image is actively used at any one time. This can eliminatethe need for multiple software licenses.

FIG. 3 shows a flowchart illustrating a data recovery method accordingto an embodiment of the present invention where backup images can bestored both at a NAS and a remote storage device. A primary image can becreated at step 301. The primary image can be sent to a NAS at step 302and a remote storage device at step 303. A delta image can be created atstep 304 representing incremental changes in the primary data server.The delta image can be sent to a NAS at step 305 and a remote storagedevice at step 306. At step 307 a notice of failure of the primary dataserver can be sent in the event of a failure of the primary data server.If a notice of failure is not sent, the system can return to step 304and can repeat steps 304 through 306. If a notice of failure is sent,the system can continue to step 308 and the primary server failure canbe diagnosed. Depending on the results of the diagnosis, the method mayproceed to step 309, 311, or 316. If the diagnosis indicates that thefailure is one that may be recovered from the NAS and the NAS is intact,the NAS backup image may be updated at step 309. In an embodiment (notshown), the updated image on the NAS may be converted to a virtualserver and activated. Users of the primary server can be redirected tothe NAS, which can then perform functions of the primary server untilthe primary server is restored. If the primary server is repaired, thenat step 310 the updated image may be restored to the primary server.

If the diagnosis indicates that the failure is one that cannot berecovered from the NAS and the NAS is intact, the NAS backup image maybe updated at step 311. The manner of the update can depend upon theresult of the diagnosis. If the primary image is found to be corrupt, anembodiment of the present invention can determine about or exactly thetime and/or update at which the image become corrupt. It would beundesirable to propagate to the backup image corrupt elements that arerepresented in one or more updates of the primary image. Therefore, thebackup image can be updated to its state before it became corrupt on theprimary server by only applying those updates at most up to the time ofcorruption. The updates may be applied only to a point well before thetime of corruption, if desired. Indeed, the backup can be updated to anystate from the time it was created to the time the last update isavailable in accordance with an embodiment of the present invention. Atstep 312 the updated image may be converted to a virtual server. Thevirtual server may then be activated at step 313. At step 314 users ofthe primary server may be redirected to the virtual server, which canperform the functions of the failed primary server until proper repairsor replacements can be made at the primary site. At step 315 deltaimages of the virtual server may be generated and stored on the NAS andremote storage device to maintain recovery capability until the primaryserver is restored.

If the diagnosis indicates a failure of both the primary server and theNAS, the remote backup image may be updated at step 316 as appropriate.At step 317 the updated image may be converted to a virtual server. Thevirtual server may then be activated at step 318. At step 319 users ofthe primary server may be redirected to the virtual server, which canperform the functions of the failed primary server until proper repairsor replacements can be made at the primary site. At step 320 deltaimages of the virtual server may be generated and stored on the remotestorage device to maintain recovery capability until the primary serveris restored.

FIG. 4 shows a data structure that can be associated with a given backupimage, including the backup image and several sequential delta imagesthat reflect incremental changes to the backup image. The backup imagecan be stored with an index that represents the time at which the imagewas last updated with a delta image, the identifier of the last deltaimage that was applied to update the backup, etc. Likewise, each deltaimage can be associated with a time or an identifier that can be usefulin ordering and tracking the implementation of the delta images.Multiple delta images may be periodically combined so that theycorrespond to an extended period of time, e.g., days, weeks, or monthsas described above.

In accordance with an embodiment of the present invention, a user canspecify portions of a primary image which are or are not to be includedin an initial backup image and/or in delta images for a given primaryserver. For example, a user (acting as an administrator for a primaryserver) may specify that certain data files, e.g., sensitive files orfiles which are not important to backup, not be included in the initialbackup image or deltas. Thus, different backups can be maintained for asingle primary server. The backups can be differentiated by user, bygroups of users, by types of user, etc. When the primary server fails, aset of backup images can be restored, each, for example, to its ownvirtual backup server. When a user is redirected to the backup, the userinterface module can direct the user to the appropriate backup server.For example, user interface module 205 or 206 (FIG. 2) can determine towhich group a user belongs, which type a user is, the identity of auser, etc., and direct the user to the corresponding virtual serverrunning the backup appropriate for that user. For example, a user can beidentified by reading a cookie on the user machine, by receiving userlogon credentials, a user type indication, a user group identifier, etc.User interface can use such information to lookup the appropriatevirtual server in a table. For example, the lookup table can correlate aparticular user with a particular backup image or virtual server, aparticular user type with a virtual server, etc.

FIG. 5 illustrates a remote storage system according to an embodiment ofthe present invention. Customer data storage 501 may store multiple setsof primary images and delta images that may be associated with datarecovery customers. Physical/Virtual conversion module 502 may performphysical-to-virtual conversions in response to a recovery failure, orvirtual-to-physical conversions in response to a request to recover animage to the primary server. Virtual secondary server 503 can act as areplacement for one or more of the failed primary data serversassociated with data recovery customers. Remote access host 504 canprovide a secure access point for clients of failed primary dataservers, who may remotely access the appropriate virtual secondaryserver 503.

As previously described, a remote server 103 or other similar backupsystem can perform the functionality of a primary server. In someembodiments, a backup system such as a remote storage server 103 canalso generate backup images and/or delta images, such as when a primarysystem fails over to the backup system. For example, a primary systemmay be backed up to a remote system using any of the techniquespreviously described herein. The remote system may be activated andinstructed or configured to operate in the stead of the primary system,such as where the remote system is a failover backup of the primarysystem. As another example, the remote system may operate as an exactduplicate of the primary system, although user access to the remotesystem may be limited, for example, due to licensing or otherconstraints.

While the backup system is operating as either a copy or a replacementof the primary system, it may generate backup and/or delta images aspreviously described with respect to the primary system. For example,the backup system may generate a primary image and/or delta images asdescribed with respect to 301-306 in FIG. 3. More generally, the backupsystem may generate an image of the backup system, track changes to thebackup system, and generate updates (periodically, a periodically or inresponse to a triggering condition or event), as previously disclosed.The backup image may be updated based upon the contents of updatesgenerated at the backup system. The image and/or any subsequent deltaimages may be sent to a third system, such as a second backup system or,if the primary system becomes functional or partly functional, the imageof the backup system and any subsequent delta images may be sent to theprimary system. In the event of a failure of the backup system, or inthe event that it is desired to return functionality to a restoredprimary system, the up-to-date backup image can be loaded onto the thirdsystem or to the primary system, which when running can essentiallyduplicate a recent state of the backup system before the transfer. In anembodiment, the backup image and corresponding delta images can be usedto activate a remote virtual server to which users can be redirectedinstead of the backup system and/or the primary system. In anembodiment, such a process may be used essentially to “swap” roles of aprimary system and a backup system. In this embodiment, when operationsare transferred to the backup system upon user instruction or a failureof the primary system, the backup system may begin operating in thestead of the primary system as previously described. It may then use theprimary system as a backup system as previously described, possiblyafter the primary system is restored to a functional state.

FIG. 6 shows an example process according to an embodiment in which abackup system begins operating after a failure of the correspondingprimary system and sends a backup to a third system, which may be therestored primary system. FIGS. 7 and 8 show example data transfers forembodiments of the process shown in FIG. 6. FIG. 7 shows an example inwhich a tertiary system 705 is used as a backup of one or more initialbackup systems 102, 103. FIG. 8 shows an example in which the backupsystem 102/103 operates to send images and/or delta images that capturethe state of the operational backup system to the primary system 101,such that the original primary system operates as described herein withrespect to an original backup system, and the backup system operates asdescribed herein with respect to an original primary system.

At 610, an image of the primary system may be generated, and sent to abackup system at 615 as previously described herein. The backup systemmay be local or remote relative to the primary system, and may be localor remote to users of the primary system as previously described.Similarly, delta images may be generated at 620 and sent to the backupsystem at 625. As previously described, the primary image and anyprimary delta images may provide an up-to-date copy of the primarysystem, which may be used to operate a virtual machine copy of theprimary system, perform a virtual-to-physical conversion of the image tocreate a duplicate of the primary system, and the like.

At 630, the primary system may be deactivated, and/or the backup systemmay be activated. For example, the primary system may failover to thebackup system as previously described. As another example, a user maydecide to move operation from the primary system to the backup systemfor a reason other than a failure of the primary system. In anembodiment, the primary and backup systems may not operate as a primarysystem concurrently, or may operate concurrently, though in some casesfor a relatively short amount of time. Such a configuration may bedesirable, for example, to avoid incurring duplicate licensing fees forsoftware installed on the replicated system, to avoid routing or accessissues that could result from operating duplicate systems, and the like.The backup system may operate as a virtual server, as a physical servergenerated using a virtual-to-physical process as described herein, or acombination thereof.

Once the backup system is operational, it may begin generating backupimages at 640 and/or delta images at 650. In some configurations, thebackup image generated at 640 may be generated by creating a duplicateof the primary image created at 610. The image of the backup system andany subsequent delta images may be generated using any of the techniquesdisclosed herein. Because the backup system may be operating in thestead of the primary system or performing other functions, it may changestate over time. By generating delta images, it may be possible toreconstruct the backup system at any given time, as has been previouslydescribed with respect to a primary system 101. The backup image and/orsubsequent delta images may be sent to a tertiary system at 645 and 655,respectively. The tertiary system may be a further backup system, forexample where the primary system has failed over to the backup systemand is no longer available, and it is desired to maintain a furtherbackup of the (now “primary”) backup system. As another example, thetertiary system may be the primary system, such as where the primarysystem has been restored after a failure, and it is desired to have anup-to-date image of the operational backup system available at theprimary system for a restore of the primary system. The tertiary systemmay operate as a virtual server, as a physical server generated using avirtual-to-physical process as described herein, or a combinationthereof.

In an embodiment, the tertiary system may be activated at 660. Forexample, subsequent to a failure of the backup system 102/103, thetertiary system 705 may be activated and operations previously performedby the primary system 101, and/or the backup system 102/103 may betransferred to the tertiary system 705, such as where the tertiarysystem operates as a failover of the backup system. As previouslydescribed, the tertiary system may be or may be implemented by theoriginal primary system, such as where the primary system storesup-to-date images of the operational backup system.

In an embodiment, the primary system and/or the backup system may berestored at 670, such as by using any of the techniques and arrangementsdescribed herein. For example, images stored at the tertiary system maybe used to restore the primary system or the backup system to a stateembodied in the images. That is, either the primary system or the backupsystem may be restored to a current state using a system image and/ordelta images stored at the backup system or the tertiary system, usingthe same techniques disclosed herein in reference to restoring a primarysystem from a backup. More generally, systems described herein andillustrated with respect to FIGS. 6-8 may allow for various combinationsof primary and backup operation. Where two backup systems are used, suchas a backup system and a tertiary system as illustrated in FIGS. 6-8,any of the primary, backup, and tertiary systems may function as aprimary, backup, or tertiary backup system as disclosed. For example, aprimary system may send backup images and delta images to two backupsystems as previously described. In the event that the primary system isdeactivated, either of the two backup systems may operate as a primarysystem. Further, the operating backup system may send backup and deltaimages to the other backup system and/or the primary system, each ofwhich may then operate as a backup system as disclosed herein. Further,in the event that the backup system operating as a primary system isdeactivated, the second backup system or the primary system operating asa backup system may then operate as a primary system as disclosed. Forexample, the backup system may failover to either the other backupsystem or to the primary system operating as a backup system.

As previously described, a backup system as disclosed herein may operateon or as a virtual computer system, such as where a backup image and oneor more delta images are used to create and run a virtual server.Similarly, a backup image, optionally with one or more delta images thatmay be integrated with the backup image, may be implemented as or on avirtual hard drive. Such a virtual hard drive may be implemented on,and/or accessed, by a physical system, a virtual system or anycombination thereof. For example, in a cloud-based or other hostedenvironment, a single physical or virtual system may include multiplevirtual hard drives for disparate remote systems for which the singlephysical or virtual system is providing backup services. Similarly, thesingle physical or virtual system may provide backup services bymaintaining images of entire physical or virtual systems for which it isproviding backup services. Unless indicated otherwise herein, wherepossible the same backup and restore procedures disclosed with respectto a virtual system may apply to a virtual hard drive, and vice-versa.Thus, more generally, backup and restore procedures and systemsdisclosed herein may apply equally to virtual and physical systemsand/or hard drives.

FIG. 9 shows a system arrangement and associated processes thatillustrate examples of the backup and restore arrangements disclosedherein. The illustrated arrangement includes three systems, a primarysystem 901, a first backup system 902, and a second backup system 903.The primary system may be a primary system 101 as previously disclosed.Each backup system 902, 903 may be a backup system 102, 103 aspreviously disclosed. Further, it will be apparent that each system mayperform the functions previously descrbed with respect to any of theprimary and/or backup systems 101, 102, 103, depending upon whether theprimary or backup system is operating as a primary system or a backupsystem.

At 905, a primary image of the primary system 901 may be created on, orcreated and transmitted to, the first backup system 902. The image mayinclude, or may be used to create, a virtual hard drive at 910 aspreviously disclosed. For example, a base image of the primary system901 may be used to generate a virtual hard drive that includes oroperates as an exact replica of one or more hard drives at the primarysystem 901. Similarly, one or more delta images may be provided to thebackup system at 920 as previously disclosed. Multiple delta images maybe provided during operation of the primary system 901 as previouslydisclosed, such that the virtual hard drive is updated at 930 to providean up-to-date version of the primary system 901 at the backup system902. For example, the virtual hard drive created at 910 and updated withany subsequent delta images at 930 may represent a virtual copy of thecurrent state of a hard drive at the primary system 901.

At 915, the virtual hard drive at the backup system 902 may beduplicated to the second backup system 903, and updated with anyincremental delta images at 940. The initial image and delta images maybe exact duplicates of those received at the backup system 902 from theprimary system 901, or they may be separately-created images resultingfrom operation of the virtual hard drive or similar system at the backupsystem 902 as previously described. Thus, in some configurations, avirtual hard drive may be created at 925 and updated at 945 using imagesreceived from the backup system 902. Alternatively or in addition, thevirtual hard drive may be received at 925, such as where the virtualhard drive is a replica of the virtual hard drive created at 910. Inother configurations, the creation and update steps may be omitted sincethe second backup system 903 may receive an up-to-date copy of thevirtual hard drive created at the first backup system 902. In otherconfigurations, the complete initial virtual hard drive may betransmitted from the first backup system 902 to the second backup system903 at 915, and updated at the second backup system 903 usingincremental delta images received from the first backup system 902 at940.

At 935, the primary system 901 may be deactivated. The deactivation mayoccur due to a failure of the primary system or based upon aninstruction to deactivate the primary system. For example, a user maywish to perform physical maintenance on a physical computing system thathosts the system for which backup services are provided by the backupsystems 902, 903, and thus may instruct the backup system 902 to assumethe operations and functionality that otherwise would be provided by theprimary system 901. At 950, the backup system 902 may begin operating inthe stead of the primary system 901. For example, the backup system mayprovide functionality previously provided by the primary system 901, anduser requests that otherwise would be received by the primary system 901may be received and processed by the backup system 902.

At 955, delta images of the backup system 902, which is operating as aprimary system, may be provided to the second backup system 903. Forexample, delta images that capture changes made to the virtual harddrive provided at 915 subsequent to the first backup system 902 assumingoperation from the primary system 901 may be provided to the secondbackup system 903. The delta images then may be used to update thevirtual hard drive at the second backup system at 960 and/or update avirtual or physical hard drive at the primary system 902.

Separately from the updates being provided to the second backup systemat 955, the first backup system 902 also may provide an initial image,such as a virtual hard drive, to the primary system and/or to anothersystem at 965, and/or associated delta images at 970. For example, ifthe primary system 901 has been reactivated, the backup system 902 mayprovide one or more images sufficient to restore the original primarysystem 901 to the same state as the backup system 902 which is operatingas a primary system, such as a base image, one or more delta images, ora combination thereof. For example, if the primary system wasdeactivated for a period of time, but retains some portion of itsoriginal data, a number of delta images may be provided to synchronizethe primary system with the backup system 902 operating as a primarysystem. In other cases, such as a catastrophic failure of the originalprimary system in which all data in the system was lost, an initial baseimage, optionally with one or more delta images, may be provided to theprimary system when it is reactivated. As another example, if thephysical system hosting the primary system is damaged or otherwise notavailable, a comparable system may receive the appropriate images fromthe backup system 902 to begin operating as a primary system.

Similarly to the processes described after deactivation of the primarysystem at 935, the first backup system may be deactivated at 975, afterwhich the second backup system 903, the primary system 901, or anothersystem that has received appropriate images may begin operating as theprimary system at 980. The processes described with respect to backup,restore, and assumption of functionality may be repeated for any numberof systems, thus providing an “always on” backup for the primary system,regardless of the operational state of the primary system and/or one ormore backup systems.

The incremental images taken at various points as described with respectto FIG. 9 and elsewhere herein may be taken at any time or frequency,allowing for nearly-instant or instant backup and restoration of asystem. For example, an incremental image may be created each time thereis a change to an existing system, each time one or more changes aremade that, in total, cause changes to a threshold amount of data storedon the existing system, or the like. Thus, a system may be restored toany point in time of its previous operation. This may be advantageousbecause it allows for immediate and complete restoration of a system.Similarly, it also may allow for recovery from non-fatal disruptions toa system. For example, if a primary system is determined to be infectedwith a virus or other malicious software, the primary system and/or abackup of the primary system may be restored to a point previous to thetime when the malicious software became present on the system.Similarly, a backup image may be “rolled back” separately from theprimary system and/or any other backup images, by applying or removingthe appropriate delta images to a base image.

In an embodiment, the techniques disclosed herein may be used totransition a system to another location or hosting arrangement, such asto transfer a production system to a cloud-based service. FIGS. 10 and11 show a specific example of such a system and technique. A primarysystem 101 may have an associated local backup system 102 or remotebackup system 103 as previously described. The various systems maycommunicate via a communication network 1002 such as the Internet. Tomigrate the primary system, a base image of the primary system may beprovided to a cloud-based service 1001 at 1010, as well as any deltaimages needed for the image at the cloud-based service to be up-to-datewith the primary system. At 1020, the primary system may be deactivatedand the cloud-based image activated at 1030, so as to operate as theprimary system. At 1040, the cloud-based system 1001 may then provideincremental delta images to a preexisting backup system 102 or 103.

If the cloud-based system 1001 is deactivated or otherwise becomesunavailable to a user, a monitoring system, or the like, operation ofthe primary system running at the cloud-based system may failover to abackup system 102, 103 as previously described, at 1050. Thus, thearrangement and techniques disclosed with respect to FIGS. 10 and 11 maybe useful, for example, when a user wishes to migrate an existingproduction system to a cloud-based service or similar hostedarrangement, while still maintaining a local backup of the productionsystem. For example, the user may wish to maintain a local backup of thecloud-based system to guard against disruptions caused if thecloud-based system should become unavailable.

Although some embodiments and examples provided herein are describedwith respect to a base image and delta images that are provided from afirst system to a second, it will be understood that in someconfigurations delta images may be applied to a base system prior toproviding the updated base image to the second system. Thus, an image ofa system as disclosed herein may be an original base image, or it may bean image with one or more delta images already incorporated therein.

Other than explicitly indicated, the various steps disclosed herein maybe omitted or may be performed in an order other than the exampleorder(s) illustrated. In addition, other arrangements and data transfersbetween the primary, backup, and tertiary systems may be used. Forexample, referring to FIG. 7, a backup system may be restored prior torestoring a primary system, or only one system may be restored. Asanother example, a backup image and/or backup delta images at a tertiarysystem may be used to restore a primary system directly, or the tertiarysystem may operate directly as a failover for the primary system. Asanother example, the images provided between various systems in FIG. 9,such as at 905 and 920, 915 and 940, and the like, may be performed in adifferent order relative to the various other operations described. As aspecific example, the first backup system 902 may receive an initialimage at 905 and delta images at 920 prior to creating a virtual harddrive at 910, and/or prior to various images being provided to thesecond backup system at 915 and 940. Further, other than explicitlyindicated, a backup system as disclosed herein may be implemented on alocal system, i.e., a system integrated with or otherwise physicallylocal to the system for which it is serving as a backup, a local networksystem such as a LAN, or a remote system such as a physically orgeographically remote system, a hosted system such as a cloud-basedsystem, or the like.

The failover processes to restore operation can be accomplished inminutes versus the possible days of time involved in traditional tapereloads, off site data storage. Several businesses may cooperatively usea single server with large data storage and with multiple virtualmachines available for use as backup servers when failures occur. Thiscan reduce the cost of near real time backups that are oftenprohibitively expensive for small companies and individuals by allowingutilization of only one license for the operating systems and programapplications because only a single instance of the server (and thus thelicensed software) is operational at any point in time. Furthermore, theinvention can provide for a means to restore operations to new primaryserver hardware in the event of a catastrophic failure that can behardware independent and allow fast, seamless installation and businesscontinuity.

Although described with respect to a failure of a primary system, thetechniques and arrangements disclosed herein also may be used when auser desires operation to be moved from a primary system to a backupsystem for reasons other than a failure of the primary system. Forexample, a user may desire to perform physical maintenance on theprimary system, during which it may be more convenient to move operationto the backup system rather than attempt to maintain the primary systemin an operational state. More generally, the techniques and arrangementsdescribed herein may be used in any situation where it is desired ornecessary to move operations and user access from a primary system to abackup system and/or from the backup system back to the primary system.

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample and not limitation. It will be apparent to one skilled in thepertinent art that various changes in form and detail can be madetherein without departing from the spirit and scope of the invention.

The invention claimed is:
 1. A method comprising: providing a base imageof a primary system to a remote backup service; providing a firstplurality of delta images of the primary system to the remote backupservice, each delta image of the first plurality of delta imagesrepresenting an incremental change in a state of the primary system;updating the base image at the remote backup service to create anupdated image that reflects the incremental change represented by eachof the first plurality of delta images; deactivating the primary system;activating the updated image at the remote backup service; andreceiving, from the remote backup ser rice, a second plurality of deltaimages at a local backup system, the local backup system being local tothe primary system, each of the second plurality of delta imagesrepresenting an incremental change in a state of the updated image, atthe remote backup service.
 2. A method as recited in claim 1, fathercomprising: subsequent to the remote backup system becoming unavailable,activating an image at the local backup system.
 3. A method as recitedin claim further comprising: determining that the remote backup systemis unavailable due to a failure of the remote backup system.
 4. A methodas recited in claim 1, wherein the remote backup system is a cloud-basedsystem.
 5. A method as recited in claim 1, further comprising: prior toproviding the second plurality of delta images to the local backupsystem, providing the updated image to the local backup system.
 6. Asystem comprising: a processor; and a computer-readable storage mediumstoring instructions which cause the processor to: provide a base imageof a primary system to a remote backup service; provide a firstplurality of delta images of the primary system to the remote backupservice, each delta image of the first plurality of delta imagesrepresenting an incremental change in a state of the primary system; andupdate the base image at the remote backup service to create an updatedimage that reflects the incremental change represented by each of thefirst plurality of delta images; activate the updated image at theremote backup service; and a local backup system that is local to theprimary system, the local backup system configured to receive a secondplurality of delta images from the remote backup service, each of thesecond plurality of delta images representing an incremental change in astate of the updated image at the remote backup service.
 7. A system asrecited in claim 6, said instructions further causing the processor toactivate an image at the local backup system subsequent to the remotebackup system becoming unavailable.
 8. A system as recited in claim 7,said instructions further causing the processor to determine that theremote backup system is unavailable due to a failure of the remotebackup system.
 9. A system as recited in claim 6, wherein the remotebackup system is a cloud-based system,
 10. A system as recited in claim6, said instructions further causing the processor to provide theupdated image to the local backup system prior to providing the secondplurality of delta images to the local backup system.
 11. A methodcomprising: receiving a base image of a primary system at a remotebackup service, the remote backup service being physically remote fromthe primary system; receiving a first plurality of delta images of theprimary system at the remote backup service, each delta image of thefirst plurality of delta images representing an incremental change in astate of the primary system; updating the base image at the remotebackup service to create an updated image that reflects the incrementalchange represented by each of the first plurality of delta images;subsequent to the primary system being deactivated, activating theupdated image at the remote backup service; and providing a secondplurality of delta images from the remote backup service to a localbackup system, the local backup system being local to the primarysystem.
 12. A method as recited in claim 11, wherein the remote backupsystem is a cloud-based system.
 13. A method as recited in claim 11,further comprising: prior to providing the second plurality of deltaimages to the local backup system, providing the updated image to thelocal backup system.
 14. A remote backup system comprising: a processor;and a computer-readable storage medium comprising instructions whichcause the processor to: receive a base image of a primary system, theremote backup system being physically remote from the primary system;receive a first plurality of delta images of the primary system, eachdelta image of the first plurality of delta images representing anincremental change in a state of the primary system; update the baseimage to create an updated image that reflects the incremental changerepresented by each of the first plurality of delta images; subsequentto the primary system being deactivated, activate the updated image atthe remote backup service; and provide a second plurality of deltaimages from the remote backup system to a local backup system, the localbackup system being local to the primary system.
 15. A system as recitedin claim 14, wherein the remote backup system is a cloud-based system.16. A system as recited in claim 14, further comprising: prior toproviding the second plurality of delta images to the local backupsystem, providing the updated image to the local backup system.